home *** CD-ROM | disk | FTP | other *** search
- TBMV(3F) Last changed: 11-2-98
-
-
- NNAAMMEE
- SSTTBBMMVV, DDTTBBMMVV, CCTTBBMMVV, ZZTTBBMMVV - Multiplies a real or complex vector by a
- real or complex triangular band matrix
-
- SSYYNNOOPPSSIISS
- Real
-
- CCAALLLL SSTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- Double precision
-
- CCAALLLL DDTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- Complex
-
- CCAALLLL CCTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- Double complex
-
- CCAALLLL ZZTTBBMMVV ((_u_p_l_o,, _t_r_a_n_s,, _d_i_a_g,, _n,, _k,, _a,, _l_d_a,, _x,, _i_n_c_x))
-
- IIMMPPLLEEMMEENNTTAATTIIOONN
- IRIX systems
-
- DDEESSCCRRIIPPTTIIOONN
- SSTTBBMMVV and DDTTBBMMVV multiply a real vector by a real triangular band
- matrix.
-
- CCTTBBMMVV and ZZTTBBMMVV multiply a complex vector by a complex triangular band
- matrix.
-
- These routines perform one of the following matrix-vector operations:
-
- _x <- _A_x
- _T
- _x <- _A _x
- _H
- _x <- _A _x (CCTTBBMMVV and ZZTTBBMMVV only)
- _T _H
- where _A is the transpose of _A, _A is the conjugate transpose of _A, _x
- is an _n-element vector, and _A may be either a unit or nonunit _n-by-_n
- upper or lower triangular band matrix with (_k+1) diagonals.
-
- These routines have the following arguments:
-
- _u_p_l_o Character*1. (input)
- Specifies whether the matrix is upper or lower triangular,
- as follows:
-
- _u_p_l_o = 'U' or 'u': _A is an upper triangular matrix.
- _u_p_l_o = 'L' or 'l': _A is a lower triangular matrix.
-
- _t_r_a_n_s Character *1. (input)
- Specifies the operation to be performed, as follows:
-
- _t_r_a_n_s = 'N' or 'n': _x <- _A_x
- _T
- _t_r_a_n_s = 'T' or 't': _x <- _A _x
- _T
- _t_r_a_n_s = 'C' or 'c': _x <- _A _x (SSTTBBMMVV, DDTTBBMMVV),
- _H
- or _x <- _A _x (CCTTBBMMVV, ZZTTBBMMVV)
-
- _d_i_a_g Character *1. (input)
- Specifies whether _A is unit triangular, as follows:
-
- _d_i_a_g = 'U' or 'u': _A is assumed to be unit triangular.
- _d_i_a_g = 'N' or 'n': _A is not assumed to be unit triangular.
-
- _n Integer. (input)
- Specifies the order of matrix _A. _n >= 0.
-
- _k Integer. (input)
-
- _u_p_l_o = 'U' or 'u': _k specifies the number of superdiagonals
- of matrix _A.
- _u_p_l_o = 'L' or 'l': _k specifies the number of subdiagonals
- of matrix _A.
-
- _k >= 0.
-
- _a Array of dimension (_l_d_a,_n). (input)
- SSTTBBMMVV: Real array.
- DDTTBBMMVV: Double precision array.
- CCTTBBMMVV: Complex array.
- ZZTTBBMMVV: Double complex array.
-
- Before entry with _u_p_l_o = 'U' or 'u', the leading (_k+1)-by-_n
- upper part of array _a must contain the upper triangular band
- part of the matrix of coefficients, supplied
- column-by-column, with the leading diagonal of the matrix in
- row (_k+1) of the array, the first superdiagonal starting at
- position 2 in row _k, and so on. The top left _k-by-_k
- triangle of array _a is not referenced.
-
- Before entry with _u_p_l_o = 'L' or 'l', the leading (_k+1)-by-_n
- part of array _a must contain the lower triangular band part
- of the matrix of coefficients, supplied column-by-column,
- with the leading diagonal of the matrix in row 1 of the
- array, the first subdiagonal starting at position 1 in row
- 2, and so on. The bottom right _k-by-_k triangle of array _a
- is not referenced.
-
- See the NOTES section for examples of Fortran code that
- transfer upper and lower triangular band matrices from
- conventional full matrix storage to band storage.
-
- When _d_i_a_g = 'U' or 'u', these routines assume that all
- elements of the array _a that represent diagonal elements of
- the matrix _A are 1. In this case, neither of these routines
- will reference any of the diagonal elements.
-
- _l_d_a Integer. (input)
- Specifies the first dimension of _a as declared in the
- calling program. _l_d_a >= (_k+1).
-
- _x Array of dimension 1+(_n-1) * |_i_n_c_x|. (input and output)
- SSTTBBMMVV: Real array.
- DDTTBBMMVV: Double precision array.
- CCTTBBMMVV: Complex array.
- ZZTTBBMMVV: Double complex array.
- Contains the vector _x. On exit, the transformed vector
- overwrites array _x.
-
- _i_n_c_x Integer. (input)
- Specifies the increment for the elements of _x. _i_n_c_x must
- not be 0.
-
- NNOOTTEESS
- The following program segment transfers an upper triangular band
- matrix from conventional full matrix storage to band storage:
-
- DO 20, J = 1, N
- M = K + 1 - J
- DO 10, I = MAX( 1, J - K ), J
- A( M + I, J ) = MATRIX( I, J )
- 10 CONTINUE
- 20 CONTINUE
- The following program segment transfers a lower triangular band matrix
- from conventional full matrix storage to band storage:
-
- DO 20, J = 1, N
- M = 1 - J
- DO 10, I = J, MIN( N, J + K )
- A( M + I, J ) = MATRIX( I, J )
- 10 CONTINUE
- 20 CONTINUE
-
- SSTTBBMMVV, DDTTBBMMVV, CCTTBBMMVV and ZZTTBBMMVV are Level 2 Basic Linear Algebra
- Subprograms (Level 2 BLAS).
-
- When working backward (_i_n_c_x < 0), each routine starts at the end of
- the vector and moves backward, as follows:
-
- _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)), ..., _x(1)
-
- SSEEEE AALLSSOO
- This man page is available only online.
-